As the television (TV) and the personal computer (PC) converge to become a single, integrated appliance, high-speed networks continue to mature and digital video applications provide greater interactivity and personalization for individual users. Such applications include interactive video, real-time feeds, and digital video broadcasting, usually a streaming digital video technology. To produce such applications, the video content may be initially recorded in a digital format, or in an analog format, and then converted to a digital format. After being stored, the content can then be requested for transmission. A server can be a computer streaming the stored video content, while a client may be the device that receives and displays the streamed video data. Set-top clients can be designed as client devices to be placed on top of a TV set, enabling consumers to access streaming digital video content without using a separate computer.
Consumers are used to the reliability of conventional TV sets and Digital Video Disk (DVD) players; they expect set-top clients, as a “black box”, to behave in a similar error-free fashion. In other words, most consumers believe that turning on the power to a set-top client device should provide perfect operation, including flawless delivery of streamed digital video data. Unfortunately, power glitches and power failures can lead to corrupted memory, which in turn may lead to failures in set-top client performance. Since set-top clients are often part of a computer network (communicating with a server), software virus activity may also act to corrupt the memory in the set-top client.
To overcome these problems, some designers have included non-volatile memory, such as flash memory, in their set-top client designs. The non-volatile memory is used to contain a boot loader and some type of Recovery Operating System (ROS) to aid in recovery from major operating system software corruption. Some manufacturers of flash memories also provide for register control of block write protection for pre-assigned areas, such as those where the boot loader and ROS reside. Thus, even if the regular operating system (i.e., the Client Operating System or COS) in the flash memory is corrupted due to a power outage or hacker activity, the set-top client device can still boot properly at the next power-up cycle, assuming that block write protection operates so that the boot loader and ROS are still intact.
Unfortunately, the advantage of semi-permanent block write protection (which allows a selected series of software commands to write over the boot loader and ROS areas when upgrades are desired, for example) comes at the cost of the continued possibility for corruption. Even though some flash memory devices include a “lock-down” command which requires a second level of register access for un-locking protected blocks of memory, the lock-down mode is cleared whenever the memory device is reset or powered-down. Therefore, even with the extended block protection modes offered by newer flash memory devices, it is still possible for hackers to access the known (published) enabling register locations in the flash memory so as to turn off block protection and change the content of the boot loader and ROS. Thus, there is a need in the art for apparatus, systems, and methods which can be easily applied to control access to protected memory areas.